home *** CD-ROM | disk | FTP | other *** search
/ Halting the Hacker - A P…uide to Computer Security / Halting the Hacker - A Practical Guide to Computer Security.iso / rfc / rfc1805.txt < prev    next >
Text File  |  1997-04-01  |  13KB  |  340 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           A. Rubin
  8. Request for Comments: 1805                                      Bellcore
  9. Category: Informational                                        June 1995
  10.  
  11.  
  12.          Location-Independent Data/Software Integrity Protocol
  13.  
  14. Status of this Memo
  15.  
  16.    This memo provides information for the Internet community.  This memo
  17.    does not specify an Internet standard of any kind.  Distribution of
  18.    this memo is unlimited.
  19.  
  20. Abstract
  21.  
  22.    This memo describes a protocol for adding integrity assurance to
  23.    files that are distributed across the Internet.  This protocol is
  24.    intended for the distribution of software, data, documents, and any
  25.    other file that is subject to malicious modification.  The protocol
  26.    described here is intended to provide assurances of integrity and
  27.    time.  A trusted third party is required.
  28.  
  29. Introduction
  30.  
  31.    One problem with any system for verifying the integrity of a file is
  32.    that the verifying program itself may be attacked. Thus, although
  33.    users may be reassured by their software that a file has not changed,
  34.    in reality, the file, and the verifier might have both changed.
  35.    Because of this danger, a protocol that does not rely on the
  36.    distribution of some special software, but rather, is based entirely
  37.    on widely used standards, is very useful. It allows users to build
  38.    their own software, or obtain trusted copies of software to do
  39.    integrity checking independently. Therefore, the protocol described
  40.    in this memo is composed of ASCII messages that may be sent using e-
  41.    mail or any other means. There is an existing implementation, Betsi
  42.    [1], that is designed this way. Betsi has been in existence since
  43.    August, 1994, and is operational on the Internet. It can be accessed
  44.    by sending e-mail to certify@bellcore.com with subject 'help', or via
  45.    the world wide web at http://info.bellcore.com/BETSI/betsi.html.
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Rubin                        Informational                      [Page 1]
  59.  
  60. RFC 1805 Location-Independent Data/Software Integrity Protocol June 1995
  61.  
  62.  
  63.    The purpose of the proposed protocol is for authors to be able to
  64.    distribute their files to users on the internet with guarantees of
  65.    time and integrity, by use of a trusted third party. The protocol is
  66.    divided into several phases:
  67.  
  68.            I.   Author registration
  69.            II.  Author verification
  70.            III. File Certification
  71.            IV.  File Distribution
  72.            V.   File Integrity Verification
  73.  
  74.    Phases I, III, IV, and V are defined in the protocol. Phase II is
  75.    intentionally not defined. Author verification can be different for
  76.    different applications, and the particular method chosen for phase II
  77.    is identified in phases III and V.  It is the hope that further
  78.    Internet Drafts will describe the various possibilities for phase II.
  79.    This memo describes the method for author verification in the Betsi
  80.    system, and makes several recommendations.
  81.  
  82. Requirements
  83.  
  84.    It is important that the integrity and time information be
  85.    independent from the location of the file. Lowry [2] defines a syntax
  86.    and protocols for location-independent objects.  His system requires
  87.    that end-users possess special software, and is still in the
  88.    prototype stage.  The protocol described in this memo has been
  89.    implemented, and is already in wide-spread use across the Internet.
  90.    It is simple, compact and easy to understand.  The disadvantage of a
  91.    very complex system is that users may not be inclined to trust the
  92.    designers' claims if they cannot understand how it works.
  93.  
  94. Assumptions
  95.  
  96.    The three entities in the protocol are Authors (A), Users (U), and a
  97.    Trusted third party (T).  The protocol described here is algorithm
  98.    independent, and all of the messages are in ASCII.  It is assumed
  99.    that for each signature scheme used, there is a well-known
  100.    verification key associated with T.
  101.  
  102.    Any signature scheme may be used, as long as there is a standard
  103.    ASCII representation of a digital signature. PGP [3] meets all of the
  104.    above requirements, but it also requires encryption, and thus, export
  105.    restrictions may deter some users. The DSS [4] is recommended, but
  106.    some suspect that it contains a trapdoor [5] based on some results by
  107.    Simmons [6]. It is also not clear that there is a standard for
  108.    generating an ASCII signature using the DSS.
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Rubin                        Informational                      [Page 2]
  115.  
  116. RFC 1805 Location-Independent Data/Software Integrity Protocol June 1995
  117.  
  118.  
  119. High level view
  120.  
  121.    The protocol works as follows. In the first phase, authors request to
  122.    register with the trusted third party, T.  Any registered author can
  123.    distribute files with integrity and time assurance. Time assurance
  124.    means that there is a guarantee that a file existed at a given time.
  125.    In the second phase, T somehow verifies the identity of an author who
  126.    requests to register.  Registration is not complete until this
  127.    verification takes place.
  128.  
  129.    To distribute a file, a registered author computes a cryptographic
  130.    hash of the file, and sends it over an integrity protected channel to
  131.    T. T then creates an object containing the hash, the current time,
  132.    the name of the author, the name of the file, and some other
  133.    information, seals the object, and returns it to the author. The
  134.    author can then use the sealed object as a location-independent proof
  135.    of the integrity and timeliness of the file.
  136.  
  137.    Any user who obtains the file and the sealed object, can compute the
  138.    cryptographic hash of the file, check the seal on the object, and
  139.    verify that the object has not changed.
  140.  
  141.    The trusted third party must maintain a widely available, dated, and
  142.    signed, certificate revocation list (CRL). Users who access a file
  143.    with a certificate must check that the CRL is current and complete,
  144.    and that the certificate is not listed.
  145.  
  146. Author registration
  147.  
  148.    In the first phase, authors request to register with the trusted
  149.    third party, T. The author sends an ASCII message to T containing
  150.    keywords followed by values. Some of the fields are optional, and are
  151.    marked with a *. The values are represented with angle brackets < >.
  152.  
  153.      AUTHOR-NAME= <first m. last>
  154.    * AUTHOR-ORGANIZATION= <Company, school, etc.>
  155.    * AUTHOR-EMAIL= <e-mail address>
  156.      AUTHOR-LOCATION= <city, state>
  157.    * AUTHOR-PHONE-1= <Home phone>
  158.    * AUTHOR-PHONE-2= <Work phone>
  159.      SIGNATURE-SYSTEM= <name of signature system>
  160.    * MISC-FIELD-n= <Any number of additional fields can be defined here>
  161.    * AUTHOR-PUBLIC-KEY=
  162.    * <public key of author>
  163.  
  164.    Each of the fields contains the keyword and the value on the same
  165.    line, except for the public key. An ASCII version of the key is
  166.    pasted on the line after the AUTHOR-PUBLIC-KEY keyword.  The format
  167.  
  168.  
  169.  
  170. Rubin                        Informational                      [Page 3]
  171.  
  172. RFC 1805 Location-Independent Data/Software Integrity Protocol June 1995
  173.  
  174.  
  175.    of this ASCII key will depend on the signature system used.  The
  176.    public key field is optional. The user may include his own, or one
  177.    can be supplied by T during phase II.  T responds with a message that
  178.    the request was received, and that the user should wait for off-line
  179.    verification.  If a user receives this confirmation message, and he
  180.    did not request to register, he knows that somebody may be attempting
  181.    to register on his behalf.
  182.  
  183. Author verification
  184.  
  185.    The trusted third party, T, must verify the identity of the author
  186.    who sent the request message in phase I.  The rest of the information
  187.    in the request is also confirmed.  This process takes place off-line.
  188.    The method used is intentionally left open, but whatever technique is
  189.    used must be identified in phases III and V.
  190.  
  191.    In the Betsi implementation, T uses the phone company infrastructure.
  192.    T calls directory assistance (1-xxx-555-1212) in the city of the
  193.    author and asks for the author's number. Then, that number is called,
  194.    and T asks the author to verify the information sent in the request.
  195.    In particular, T insures that the author has registered his correct
  196.    public key. Or, in some cases, T assigns a public key to the author.
  197.    As Betsi is only operational in the United States, other mechanisms
  198.    need to be in place for verifying identities of people
  199.    internationally. Hopefully, standards for doing this will arise. The
  200.    rest of the protocol is independent of whatever mechanism is used for
  201.    off-line identity and public key verification.
  202.  
  203. File certification
  204.  
  205.    Registered authors can obtain location-independent objects from the
  206.    trusted third party, T, that vouch for the integrity and time of any
  207.    file.
  208.  
  209.    An author generates the following ASCII message and signs it with the
  210.    signature key that corresponds to the public key that was registered.
  211.  
  212.      AUTHOR-NAME= <first m. last>
  213.      HASH-FUNCTION= <md5,sha, etc.>
  214.    * FILE-LOCATION= <ftp site/directory>
  215.      <list of hashes>
  216.  
  217.    Each entry in the <list of hashes> consists of two mandatory fields
  218.    and one optional one, as follows:
  219.  
  220.      <fixed-length hash of file> <name of file> <version number>
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Rubin                        Informational                      [Page 4]
  227.  
  228. RFC 1805 Location-Independent Data/Software Integrity Protocol June 1995
  229.  
  230.  
  231.    The <fixed-length hash of file> is a fixed-length hexadecimal value
  232.    corresponding to the hash of the contents of the file.  For MD5, the
  233.    output is 32 hexadecimal digits. There is one space between the
  234.    fields, and the name of the file contains no spaces.  The <version
  235.    number> is optional.  The <list of hashes> contains at least one
  236.    entry, and may contain as many as the author wants.  The message is
  237.    signed and sent to the trusted third party, T.
  238.  
  239.    When T receives the request for file certification, he verifies the
  240.    signature on the request and creates a location-independent
  241.    certificate for the request. The certificate is signed by T, and
  242.    contains the following information:
  243.  
  244.      TRUSTED-PARTY= <identity of T>
  245.      AUTHOR-VERIFICATION-METHOD= <how authors are verified off-line>
  246.      AUTHOR-NAME= <first m. last>
  247.      AUTHOR-ORGANIZATION= <company, school, etc.>
  248.      HASH-FUNCTION= <md5,sha, etc.>
  249.      DATE= <date>
  250.      <list of hashes>
  251.  
  252.    The <list of hashes> is the same as the one in the author's request.
  253.    T signs the message and sends it to the author, who verifies the
  254.    signature and the contents of the certificate.  Note that the method
  255.    for off-line author verification is included in the certificate.
  256.  
  257. File distribution
  258.  
  259.    In the file distribution phase, the author distributes his file,
  260.    along with the certificate from T. The file and certificate are
  261.    location-independent. That is,  the integrity and timeliness of the
  262.    file can be verified independently from the location of the file and
  263.    the certificate. This means that files can be distributed from
  264.    insecure sites, and over insecure networks.
  265.  
  266. File integrity verification
  267.  
  268.    The final phase is file integrity verification. A user obtains the
  269.    public key of the trusted third party, T, from several independent
  270.    sources, until he is convinced of its authenticity.  The user then
  271.    verifies the certificate for a file, and decides whether or not he
  272.    trusts the method of off-line verification that was used by T. If so,
  273.    then he extracts the name of the hash function in the certificate,
  274.    and performs the hash function on the actual file. Finally, the user
  275.    compares the hash of the file to the hash in the certificate. The
  276.    user also checks the date in the certificate if he is concerned with
  277.    this information.  As a last step, the user checks the highly
  278.    available certificate revocation list of T, to see if the current
  279.  
  280.  
  281.  
  282. Rubin                        Informational                      [Page 5]
  283.  
  284. RFC 1805 Location-Independent Data/Software Integrity Protocol June 1995
  285.  
  286.  
  287.    certificate is listed.  When all of this has concluded, if none of
  288.    the assumptions of the system has been violated, then the user is
  289.    assured of the integrity and timeliness of the file.
  290.  
  291. References
  292.  
  293.    [1] Rubin, A., "Trusted Distribution of Software over the Internet",
  294.        Internet Society Symposium on Network and Distributed System
  295.        Security," pp. 47-53, 1995.
  296.  
  297.    [2] Lowrey, J., "Location-Independent Information Object Security",
  298.        Internet Society Symposium on Network and Distributed System
  299.        Security," pp. 54-62, 1995.
  300.  
  301.    [3] Zimmerman, P., "PGP User's Guide", 1992.
  302.  
  303.    [4] National Institute for Standards and Technology, Digital
  304.        Signature Standard (DSS), Federal Register 56(169), 1991.
  305.  
  306.    [5] Schneier, B., "Applied Cryptography", ISBN 0-471-59756-2.
  307.  
  308.    [6] Simmons, G., "The Subliminal Channels of the U.S.  Digital
  309.        Signature Algorithm (DSA)", Proceedings of the 3rd Symposium on:
  310.        State and Progress of research in Cryptography, pp. 35-54, 1993.
  311.  
  312. Security Considerations
  313.  
  314.    Security issues are discussed throughout this memo.
  315.  
  316. Author's Address
  317.  
  318.    Aviel D. Rubin
  319.    Bellcore
  320.    Morristown, NJ 07960
  321.    USA
  322.  
  323.    Phone: +1 201 829 5922
  324.    Fax: +1 201 829 2645
  325.    EMail: rubin@bellcore.com
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Rubin                        Informational                      [Page 6]
  339.  
  340.